热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

蜜蜂|蜂巢_基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类

篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类相关的知识,希望对你有一定的参考价值。目录

篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类相关的知识,希望对你有一定的参考价值。


目录

摘要:

1.蜜蜂优化算法:

2. 卷积神经网络(CNN)

3. 求解结果:





摘要:

本文通过蜜蜂优化算法,优化了卷积神经网络(CNN)中的超参数,主要是网络的权重和偏差等关键参数,使CNN可以达到更加优秀的性能表现,通过使用优化后的CNN进行图像分类任务,从所得结果可以看出,蜜蜂优化算法对CNN的分类准确度的提升很大,在训练过程中CNN的分类准确度甚至可以达到100%,充分展示了本文所提方法的有效性。

程序已做标准化处理,使用者可以通过替换原始数据为自己的数据,从而实现需要的功能。



关注博主,后台私信获取本文全部代码



1.蜜蜂优化算法:

蜜蜂算法是受自然界中蜜蜂的觅食行为启发而提出的一种优化算法。算法中食物源位置代表优化 问题的一组解,由食物源位置及其近邻域形成一个 小的搜索区域,称为花丛。

在搜索食物的过程中,蜜蜂群首先派出侦察蜂 进行搜索,侦察蜂不断地从一个食物源飞往另一个 食物源,搜索所有可能的食物源。当搜索到食物源 的收益度( 比如糖的含量) 超过一定量时,侦察蜂返 回蜂巢,卸下蜂蜜并在“跳舞板”上跳一种神奇的“摇 摆舞”。这种“摇摆舞”是蜜蜂群进行信息交流的必 要工具,能使整个蜂群了解到所发现食物源的方位、 到蜂巢的距离和收益度。跳完舞后的侦察蜂带领守 候在蜂巢外面的跟随蜂飞回到相应的食物源采蜜, 并且收益度高的食物源将会招募到更多的跟随蜂前 往采蜜。在采蜜过程中,采蜜蜂计算其正在采蜜的 食物源的收益度,并返回蜂巢跳“摇摆舞”,给蜂群传 递当前食物源收益度的信息。如果食物源收益度仍 然较高,将会招募更多的跟随蜂前往采蜜;

该算法需要设置一些参数,即侦察蜂的数量 n,n 个被搜索的食物源中被选中食物源的数量 m,m 个 食物源中最好食物源的数量 e,为最好 e 个食物源招 募的蜜蜂数量 nep,为其它 m - e 个食物源招募的蜜 蜂数量 nsp,食物源近邻搜索半径 ngh 和算法的终止 条件。蜜蜂算法的伪代码如下: ( 1) 初始化种群的随机解; ( 2) 评价种群的适应度; ( 3) 当停止准则不满足时,产生新的种群; ( 4) 为近邻搜索选择食物源; ( 5) 招募蜜蜂到选择的食物源( 为最好的 e 个食 物源招募更多的蜜蜂) 并评价其适应度; ( 6) 从每个花丛中选择适应度最高的蜜蜂; ( 7) 派遣其余的搜索蜂进行随机搜索并评价其 适应度; ( 8) 结束循环


2. 卷积神经网络(CNN)

卷积神经网络是一种多层非线性前馈神经网 络,最初被用于复杂图像的特征识别和提取,以解决 传统图像识别技术仅能提取图像浅层特征的问题, 实现对复杂图像的自动化处理。典型的卷积神经网 络包括输入层、卷积层、激活层、池化层、全连接层和 输出层,如图所示:

求解网络模型参数时,给出损失函数沿网络模 型反向在各层关于模型参数的梯度,并使参数沿梯 度方向更新直至误差收敛,此方法被称为随机梯度下降法等。


输入层

卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组 [16]  。由于卷积神经网络在计算机视觉领域应用较广,因此许多研究在介绍其结构时预先假设了三维输入数据,即平面上的二维像素点和RGB通道。


隐含层

卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模块、残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。卷积层中的卷积核包含权重系数,而池化层不包含权重系数,因此在文献中,池化层可能不被认为是独立的层。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-全连接层-输出。


输出层

卷积神经网络中输出层的上游通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同。对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签 [16]  。在物体识别(object detection)问题中,输出层可设计为输出物体的中心坐标、大小和分类 [16]  。在图像语义分割中,输出层直接输出每个像素的分类结果 [16]  。


3. 求解结果:


推荐阅读
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 本文详细解析了Java中hashCode()和equals()方法的实现原理及其在哈希表结构中的应用,探讨了两者之间的关系及其实现时需要注意的问题。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 本题探讨了在大数据结构背景下,如何通过整体二分和CDQ分治等高级算法优化处理复杂的时间序列问题。题目设定包括节点数量、查询次数和权重限制,并详细分析了解决方案中的关键步骤。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • 华为智慧屏:超越屏幕尺寸的智能进化
    继全球发布后,华为智慧屏于9月26日在上海正式亮相,推出65英寸和75英寸版本。该产品不仅在屏幕尺寸上有所突破,更在性能和智能化方面实现了显著提升。 ... [详细]
  • 12月16日JavaScript变量、函数、流程、循环等***线上九期班
    12月16日JavaScript变量、函数、流程、循环等***线上九期班 ... [详细]
  • 本文深入探讨了面向切面编程(AOP)的概念及其在Spring框架中的应用。通过详细解释AOP的核心术语和实现机制,帮助读者理解如何利用AOP提高代码的可维护性和开发效率。 ... [详细]
author-avatar
孤独丶Angle_251
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有